1. Field of the Invention
This invention relates to disconnected database access and more particularly relates to XML based disconnected database access to multivalued/hierarchical databases.
2. Description of the Related Art
As network use and network sizes increase, disconnected database access is becoming increasingly important. When using disconnected access, a disconnected client remains disconnected from a data source except during data retrieval from the data source and data writes to the data source. Between data retrieval and data writes, the disconnected client may access, edit, manipulate, and update data from the data source in a local cache. Disconnected data access offers scalability and performance benefits over connected access by allowing a higher number of users access to database data simultaneously, while decreasing the load on the network and on the database system. Current methods for providing disconnected data access to databases are based on Structured Query Language (SQL) commands.
These SQL based methods are well suited for common relational databases, but are often forced upon less common non-relational databases. Non-relational databases, such as multivalued/hierarchical databases, often implement SQL or some subset of SQL for compatibility purposes, but have other native interfaces or command languages. In order to process an SQL command, non-relational databases often require normalization or flattening. Databases like multivalued/hierarchical databases often violate the first law of normalization by allowing by an element of a database table to contain multiple separate values. Normalization or flattening of a database to satisfy the laws of normalization is inefficient and resource intensive, especially if it must occur often. Other non-relational databases may not support SQL, or even a subset of SQL.
SQL based disconnected access also uses a separate SQL command for each change that a disconnected user makes to the database. Executing a series of SQL commands in a direct sequence is also resource intensive, especially for non-relational database systems. Because of the limitations of using SQL based disconnected access with non-relational databases, disconnected access to non-relational databases is inefficient, and does not currently have the same benefits of disconnected access to relational databases.